package com.fourgirls.xiaoxiang.controller;

import com.fourgirls.xiaoxiang.exception.Result;
import com.fourgirls.xiaoxiang.pojo.User.LoginVo;
import com.fourgirls.xiaoxiang.pojo.User.UserIdVo;
import com.fourgirls.xiaoxiang.pojo.User.UserNameVo;
import com.fourgirls.xiaoxiang.pojo.User.UserVo;
import com.fourgirls.xiaoxiang.service.User.UserService;
import com.fourgirls.xiaoxiang.util.JwtUtils;
import com.fourgirls.xiaoxiang.util.Login;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


/**
 *
 * @author wsw
 * @time 2020-12-03
 * UserController类，对Userserver方法的实现
 */

@RestController
@CrossOrigin
public class UserController {

    @Autowired
    UserService userService;
//---------------------------------------------------------------查询分割线--------------------------------------------------------
    /**
     * 查询user表单里面的所有数据
     * @return 查询的数据结果
     */
    @Login
    @RequestMapping("findAllUser")
    public List<UserVo> findAllUser(){
        return userService.findAllUser();
    }

    /**
     * 查询User表中的用户的登录数据
     * @return 查询的数据
     */
    @Autowired
    JwtUtils jwtUtils;
    @RequestMapping("findloginuser")
    public Result findLoginUser(@RequestBody LoginVo loginVo){
        System.out.println(userService.findLoginUser(loginVo));
        return Result.ok().put("data", userService.findLoginUser(loginVo));
    }

 /**
     * 根据username查询，user表中的信息
     * @return 查询的数据
     */
    @RequestMapping("findUserNameUser")
    public Result findUserNameUser(@RequestBody UserNameVo userNameVo){
        return Result.ok().put("data", userService.findUserNameUser(userNameVo));
    }


    //---------------------------------------------------------------增加分割线--------------------------------------------------------
    /**
     * 往User表中增加一条用户的登录数据
     * @return 查询的数据
     */
    @RequestMapping("addloginuser")
    public Result addLoginUser(@RequestBody LoginVo loginVo){
        int result = userService.addLoginUSer(loginVo);
            if (result > 0) {
                return Result.ok("增加用户成功");
            }
//        }
        return Result.ok("增加用户失败");
    }

    /**
     * 往User表中增加一条用户的登录数据
     * @return 查询的数据
     */
    @RequestMapping("adduser")
    public Result addUser(@RequestBody UserVo userVo){
        int result = userService.addUser(userVo);
        if (result > 0) {
            System.out.println(Result.ok("增加用户成功"));
            return Result.ok("增加用户成功");
        }
        return Result.ok("增加用户失败");
    }

    //---------------------------------------------------------------删除分割线--------------------------------------------------------
    /**
     * 往User表中删除一条用户的数据 id=?
     * @return 查询的数据
     */
    @RequestMapping("deleteuser")
    public Result deleteUser(@RequestBody UserIdVo userIdVo){
        int result = userService.deleteUser(userIdVo);
        if (result > 0) {
            System.out.println(Result.ok("删除用户成功"));
            return Result.ok("删除用户成功");
        }
        return Result.ok("删除用户失败");
    }

    //---------------------------------------------------------------删除分割线--------------------------------------------------------
    /**
     * 往User表中删除一条用户的数据 id=?
     * @return 查询的数据
     */
    @RequestMapping("updatauser")
    public Result updataUser(@RequestBody UserVo userVo){
        int result = userService.updateUser(userVo);
        if (result > 0) {
            System.out.println(Result.ok("修改用户成功"));
            return Result.ok("修改用户成功");
        }
        return Result.ok("修改用户失败");
    }
}
